package com.boyan.order.feign;

import com.boyan.order.feign.fallback.ProductFeignClientFallback;

import com.boyan.product.bean.Product;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;

//feign自动负载均衡
//feign客户端，用于调用其他微服务
//feign客户端负载均衡，restTemplate服务端负载均衡
//fallback兜底回调
//RequestMapping不可以被新版OpenFeign识别，新版需要在path中指定路径
//@RequestMapping("/api/product")
//,path = "/api/product"
@Component
@FeignClient(value = "service-product",fallback = ProductFeignClientFallback.class)
public interface ProductFeignClient {

    //mvc注解两套使用逻辑
    //1.标注在Controller上，是接收这样的请求
    //2.标注在FeignClient上，是发送这样的请求
    //2.接受json转Product的结果
    //自己的api直接复制controller
    @GetMapping("/product/{id}")
    Product getProductById(@PathVariable("id") Long id);




}
